package org.dq.like.task;

import lombok.extern.slf4j.Slf4j;
import org.dq.like.controller.CheckinController;
import org.dq.like.controller.JuejinLikeController;
import org.dq.like.controller.MoYuBanController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

/**
 * 定时任务
 * 定时刷新沸点列表进行点赞
 *
 * @author klh
 * @date 2023/09/07 18:05:14
 */
@Slf4j
@Service
@EnableScheduling
public class AutoTask {

    @Autowired
    private JuejinLikeController juejinLikeController;

    @Autowired
    private CheckinController checkinController;

    @Autowired
    private MoYuBanController moYuBanController;

    /**
     * 每十分钟执行一次
     */
    @Scheduled(cron = "0 0/10 * * * ?")
    public void task() {
        log.info("定时点赞任务执行开始");
        try {
            juejinLikeController.likeBoil(true, false);
        } catch (Exception e) {
            log.error("定时点赞任务异常", e);
        }
        log.info("定时点赞任务执行结束");
    }

    /**
     * 每30分钟执行一次签到
     */
    @Scheduled(cron = "0 0/30 * * * ?")
    public void checkin() {
        log.info("自动签到任务执行开始");
        try {
            checkinController.check(true);
        } catch (Exception e) {
            log.error("自动签到任务异常", e);
        }
        log.info("自动签到任务执行结束");
    }

    /**
     * 每天9点发布摸鱼办沸点
     * 需要自动发布摸鱼办沸点的话把下面的代码注释放开
     */
//    @Scheduled(cron = "0 0 9 * * ?")
    public void moYuBan() {
        log.info("自动发布摸鱼办沸点任务执行开始");
        try {
            moYuBanController.releaseBoil(null);
        } catch (Exception e) {
            log.error("自动发布摸鱼办沸点任务异常", e);
        }
        log.info("自动发布摸鱼办沸点任务执行结束");
    }
}
